МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра САПР
ЗВІТ
до лабораторноі работи № 1
Особливості мови об’єктно-орiєнтованого програмування С++.
з курсу " Методи та засоби об’єктно-орієнтованого проектування "
1. МЕТА РОБОТИ
Мета роботи - ознайомлення з особливостями мови об’єктно-орiєнтованого програмування С++.
2. ТЕОРЕТИЧНА ЧАСТИНА
2.1. Основнi вiдмiнностi С++ вiд С.
С++ - унiверсальна мова програмування, яка задумана так, щоб зробити програмування бiльш приємним для серйозного програмiста. С++ була розроблена так, щоб дати можливiсть однiй людинi без надмiрних зусиль написати програму в 2500 стрiчок.
За базову мову для С++ була вибрана мова С, тому що:
вона вiдносно низького рiвня.;
вiдповiдає бiльшостi задач системного програмування;
вже створено мiльони стрiчок бiблiотечних функцiй i сервiсних програм, написаних на С;
iснують сотнi тисяч програмiстiв, якi знають С.
До ключових слiв визначених в С у мову С++ дано такі ключовi слова:
overload
delete
friend
protected
catch
new
inline
public
try
this
operator
template
throw
class
private
virtual
Основна рiзниця мiж цими мовами полягає у методi побудови програм:
мова С - модульна мова i внаслiдок цього парадигма програмування звучить так “Визначте, якi модулi вам потрiбно; розчленiть програму так, щоб данi були захованi в модулях”;
мова С++ - об’єктно-орiєнтована мова i внаслiдок цього парадигма програмування звучить так “Визначте, якi класи вам потрiбно; пiдготуйте повний набiр операцiй для кожного класу”.
Об’єктно орiєнтоване програмування (ООП) включає в собi найкраще з структурного програмування i, використовуючи новi концепцiї дозволяє програмiсту набагато простiше розбити задачу на пiдзадачi, якi пiддаються керуванню. Цi концепцiї називаються: об’єкти, полiморфiзм, успадкування. Розглянемо їх детальніше.
Об’єкти
Об’єкт це логiчна одиниця, яка мiстить данi i код, що манiпулює цими даними. Всерединi об’єкту, код i/або данi можуть бути приватнi до об’єкту i недосяжнi будь-де за межами об’єкту. Таким чином об’єкт забезпечує певний рiвень захищеностi вiд iншої частини програми, що може випадково змiнити або некоректно використати цi данi. Об’єкт - це змiнна визначена самим користувачем. Коли ви визначаєте об’єкт ви неявно створюєте новий тип даних.
Полiморфiзм
ООП пiдримує полiморфiзм який означає що одне iм’я може бути використане для декiлькох зв’язаних, але дещо рiзних застосувань. Наприклад, ви можете мати програму, що визначає три рiзних типу стека. Один стек застосовується для типу integer, iнший для float а наступний для long. Завдяки полiморфiзму ви створюєте три функцiї для стеку push(), pop(), а компiлятор сам вибере потрiбну функцiю в залежностi вiд типу виклику.
Успадкування
За допомогою успадкування програмiст може виразити iєрархiчну класифiкацiю. Наприклад принтер “Epson LX 1050” є частиною матричних принтерiв, якi в свою чергу є частиною класу принтерiв, який також є частиною ширшого класу оргтехнiка. Без використання класифiкацiї, кожний об’єкт повинен явно визначити всi свої характеристики. З використанням успадкування кожному об’єкту потрiбно визначити тi особливостi, якi властивi саме цьому класу. Завдяки цим механiзмам акценти програмування в С++ змiщенi на проектування класiв, вiдносин мiж ними i лише потiм власне саме кодування. Треба пiдкреслити, що при правильному проектуванню проект легше пiддається контролю, що дозволяє писати великi i складнi проекти за коротший час з коротшим кодом, залучати велику кiлькiсть програмiстiв, вiдносно легко вносити змiни у програму. Це також зменшує кiлькiсть помилок, а отже i вартiсть програмного забезпечення, але водночас мова С++ не звiльняє програмiста вiд кодування i алгоритмiв.
Коротко про деякі технічні відмінності у мовах С++ і ANSI C:
Операція розширення області видимості (::)В межах класу заміняє глобальні змінні та глобальні функції.
Посилання (&)Розглянемо відому функцію swap(), яка служить для обміну...